import axios from 'axios'

export default {
  namespaced: true,
  state () {
    return {
      list: []
    }
  },
  mutations: {
    updataList (state, newData) {
      state.list = newData
    },
    updateCount (state, obj) {
      // 根据 id 找到对应的对象，更新count属性即可
      const goods = state.list.find(item => item.id === obj.id)
      goods.count = obj.count
    }
  },
  actions: {
    async getData (context) {
      const res = await axios.get('http://localhost:3000/cart')
      context.commit('updataList', res.data)
    }

    // 接口不能用了
    // async setData (context, obj) {
    //   // 将修改更新同步到后台服务器
    //   await axios.patch(`http://localhost:3000/cart/${obj.id}`, {
    //     count: obj.newCount
    //   })
    //   // 将修改更新同步到 vuex
    //   context.commit('updateCount', {
    //     id: obj.id,
    //     newCount: obj.newCount
    //   })
    // }
  },
  getters: {
    allTatol (state) {
      return state.list.reduce((sum, item) => sum + item.price * item.count, 0)
    },
    allNum (state) {
      return state.list.reduce((sum, item) => sum + item.count, 0)
    }
  }
}
